package com.pay.sdk;

import java.text.SimpleDateFormat;
import java.util.Date;

import com.pay.sdk.common.Configure;
import com.pay.sdk.service.LiquidateService;

/**
 * 代付
 * 
 * @author Administrator
 *
 */
public class LiquidateExample {

	public static void main(String[] args) {
		System.out.println("==重要== 调用任何API前，请先配置Configure类");
		 Configure.setDevEnv(false);
		 Configure.setMerchantNo("584109314804928512");
		 Configure.setKey("fabfb05572ff4a749681246f045dbca6");
		 
		// 使用测试环境，生产上使用请设置为false
		 payOtherExample(); //单笔代付
		// payOtherQueryExample(); //单笔代付结果查询
		// bankTypeQueryExample(); //联行号查询
		// bankCardExample(); //银行卡信息查询
//		 TuiHuiQueryExample(); //银行卡信息查询

	}

	/**
	 * 单笔代付
	 * 
	 * @param user_order_no
	 *            用户订单号
	 * @param amount
	 *            金额（单位:元）
	 * @param account_type
	 *            00-银行卡 01-存折。不填时默认银行卡00
	 * @param account_no
	 *            账号
	 * @param account_name
	 *            开户名
	 * @param id_type
	 *            证件类型 0:身份证 1：户口簿 2：护照 3：军官证 4:士兵证 5：港澳居民来往内地通行证 6:台湾同胞来往内地通行证
	 *            7：临时身份证 8:外国人居留证 9：警官证 X:其他证件
	 * @param id
	 *            证件号
	 * @param tel
	 *            电话号码
	 * @param bank_code
	 *            银行编码
	 * @param account_prop
	 *            0-私人 1-公司 ，不填时默认为0-私人
	 * @return json格式结果，返回结果包含字段请参看文档
	 */
	public static void payOtherExample() {
		try {
			String user_order_no = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
			String amount = "2.1";
			String account_type = "00";
			String account_name = "杨学勇";// 账号名
			String account_no = "6228480089507246372";// 账号
			String id_type = "0";
			String id = "522631198702280017";// 身份证
			String tel = "18200982382";
			String bank_code = "103";
			String bank_type = "";// 联行号
			String account_prop = "0";
			String result = LiquidateService.payOther(user_order_no, amount, account_type, account_name, account_no,
					id_type, id, tel, bank_code, account_prop, bank_type);
			System.out.println("单笔代付：" + result);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 代付查询
	 * 
	 * @param query_sn
	 *            查询交易流水
	 * @param user_order_no
	 *            用户订单号 二选一
	 * @return
	 */
	public static void payOtherQueryExample() {
		try {
			String query_sn = "562792492338262016";
			String user_order_no = "20161107151445";
			String result = LiquidateService.payOtherQuery(query_sn, user_order_no);
			System.out.println("代付查询：" + result);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 代付银行联行号查询
	 * 
	 * @param bank_code
	 *            银行编码
	 * @param province
	 *            开户省份
	 * @param city
	 *            开户城市
	 * @param branch_name
	 *            开户网点关键字
	 * @return
	 */
	public static void bankTypeQueryExample() {
		try {
			String bank_code = "102";
			String province = "广东省";
			String city = "广州市";
			String branch_name = "天河";
			String result = LiquidateService.bankTypeQuery(bank_code, province, city, branch_name);
			System.out.println("代付查询：" + result);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 银行卡查询
	 * 
	 * @param card_no
	 *            银行卡号
	 */
	public static void bankCardExample() {
		String card_no = "62302103600010007";
		String result = LiquidateService.bankCardQuery(card_no);
		System.out.println(result);
	}

	/**
	 * 代付退汇查询
	 * 
	 * @param begin_date
	 *            开始日期
	 * @param end_date
	 *            结束日期
	 */
	public static void TuiHuiQueryExample() {
		try {
			String begin_date = "20170511";
			String end_date = "20170511";
			String result = LiquidateService.queryTh(begin_date, end_date);
			System.out.println(result);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
